#ifndef INCLUDED_jax_lang_JCharSequence
#define INCLUDED_jax_lang_JCharSequence

#ifndef HXCPP_H
#include <hxcpp.h>
#endif

#ifndef INCLUDED_cpp_CppInt32__
#include <cpp/CppInt32__.h>
#endif
HX_DECLARE_CLASS2(jax,lang,JCharSequence)
namespace jax{
namespace lang{


class JCharSequence_obj : public hx::Interface{
	public:
		typedef hx::Interface super;
		typedef JCharSequence_obj OBJ_;
		HX_DO_INTERFACE_RTTI;
virtual int charAt( ::cpp::CppInt32__ index)=0;
		Dynamic charAt_dyn();
virtual int length( )=0;
		Dynamic length_dyn();
virtual ::jax::lang::JCharSequence subSequence( ::cpp::CppInt32__ start,::cpp::CppInt32__ end)=0;
		Dynamic subSequence_dyn();
virtual ::String toString( )=0;
		Dynamic toString_dyn();
};

#define DELEGATE_jax_lang_JCharSequence \
virtual int charAt( ::cpp::CppInt32__ index) { return mDelegate->charAt(index);}  \
virtual Dynamic charAt_dyn() { return mDelegate->charAt_dyn();}  \
virtual int length( ) { return mDelegate->length();}  \
virtual Dynamic length_dyn() { return mDelegate->length_dyn();}  \
virtual ::jax::lang::JCharSequence subSequence( ::cpp::CppInt32__ start,::cpp::CppInt32__ end) { return mDelegate->subSequence(start,end);}  \
virtual Dynamic subSequence_dyn() { return mDelegate->subSequence_dyn();}  \
virtual ::String toString( ) { return mDelegate->toString();}  \
virtual Dynamic toString_dyn() { return mDelegate->toString_dyn();}  \


template<typename IMPL>
class JCharSequence_delegate_ : public JCharSequence_obj
{
	protected:
		IMPL *mDelegate;
	public:
		JCharSequence_delegate_(IMPL *inDelegate) : mDelegate(inDelegate) {}
		hx::Object *__GetRealObject() { return mDelegate; }
		void __Visit(HX_VISIT_PARAMS) { HX_VISIT_OBJECT(mDelegate); }
		DELEGATE_jax_lang_JCharSequence
};

} // end namespace jax
} // end namespace lang

#endif /* INCLUDED_jax_lang_JCharSequence */ 
